package jmine.tec.result.api;

/**
 * Interface para uma estratégia de cache.
 * <p>
 * As implementações irão determinar se o cache é em memória, em banco de dados, em arquivo, etc.
 * 
 * @author jrenaut
 */
public interface CacheStrategy {
    /**
     * Recupera o objeto em cache associado à este objeto
     * 
     * @param key o objeto chave
     * @return o objeto em cache ou null
     */
    Object getValue(Object key);

    /**
     * Adiciona um objeto ao cache.
     * 
     * @param key o objeto que deve ser armazenado
     */
    void putValue(Object key);
}
